package teamworkYangXiaoCheng;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Appfile {
    public static void main(String[] args) throws Exception{
        Class<?> C = Class.forName("teamworkYangXiaoCheng.Human");
        Object o = C.newInstance();//使用类对象C的newInstance方法生成Human类的实例【实例化】
        //通过类对象C的getDeclaredField方法获取Human类中的name字段；
        //name代表的时Human类中的name字段
        Field name = C.getDeclaredField("name");
        //使用类的setAccessible方法使私有属性可以被访问
        name.setAccessible(true);
        //set方法中的第一个参数代表的调用对象，即类的实例
        //第二个参数表示具体的值
        name.set(o,"Cheng");
        //通过反射获取name属性的值
        Method getName = C.getMethod("getName");
        Object name1 = getName.invoke(o);//【读】
        System.out.println(name1);
    }
}
